//引入axios
import axios from 'axios'
//给axios对象添加一些配置
/* 
    axios其实就是对象
    axios.get()我在发送请求的时候,调用axios对象中的get方法
*/


const ins=axios.create({
    //处理请求的url地址
    baseURL:"http://kumanxuan1.f3322.net:8001",
    //请求的超时时间,如果请求超过设置的超时时间,那么就不在请求了
    timeout:5000//表示5秒
})
//返回的ins 也就还是那个axios
/* 
    axios.get("http://kumanxuan1.f3322.net:8001/index/index")
    axios.post()

    处理之后

    ins.get("/index/index")
    ins.post("/路径/路径")
*/


//请求拦截
/* 
    在发送请求之前,将请求拦截
    有一些接口需要 token 才能给你返回对应的接口数据:
    token哪来的?? 登录成功之后,返回的结果中就包含了token
    token有值,就证明你一定是登录了!!!!!
    如果购物车 api 接口 请求的时候,需要请求头,这请求头就是token 如果没有token表示
    你没有登录,没有登录就不给你返回购物车的信息
    interceptors 拦截 request 请求
*/
ins.interceptors.request.use(config=>{
    //config参数就是你的这个请求对象
    //如果放行 就需要将config这个参数 进行返回即可
    // console.log("我是请求拦截,每一次请求都会执行我这里的代码");
    
        // 请求登录接口:验证你的用户名+密码
        // 都没有问题: 返回用户信息  里边就有token的数据
        // Login.vue
        // created(){
        //     axios.post("/登录的请求地址",{username:xxxx,password:xxxx})
        //     .then(res){
        //     res.token 就是 你登录成功后的token值
        //     我们把token的数据存储起来:使用(设置token数据)localstorage.setItem('token',登录成功的那个token(res.token));
        //     }
        // }
        
        // 在请求拦截的代码中获取这个token的数据
        // let token = localstorage.getItem(token);
        // 判断这个token是否存在
        // if(token){
        // 将token作为请求头
        // config.headers[X-Nideshop-Token] = token;
        // }

        // 如果你请求购物车
        // ins.get('/购物车的请求地址')
        // .then(res=>{

        // })
        let token=localStorage.getItem("token")
        if(token){
            config.headers={
                "X-Nideshop-Token":token
            }
        }
        return config
        },err=>{
            return Promise.reject(err)
        
   
    // return config;

})




//响应拦截
ins.interceptors.response.use(res=>{
    //请求到的结果
    return res.data;
})
// ins 也是 axios对象 做了配置 配置了路径 配置了请求超时时间 携带了token值
// ins  ==   axios 
// axios 啥也没有
// axios.get()  == ins.get()   => 请求购物车
// axios.get("http://kumanxuan1.f3322.net:8001/index/index",还需要设置请求头)
// 请求没有超时时间
// ins.get("/index/index").then()


//将ins开放
export default ins;// ins 是不是就是 axios 对象